<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Document</title>
</head>
<body>
  <div id="app">
    <h3>{{msg}}</h3>
    <h4>{{user.name}}</h4>
  </div>
  <script src="./vue.js"></script>
  <script>
    const vm = new Vue({
      el: '#app',
      // 如果在管理的视图容器中，需要使用数据，name在data当中声明。
      // 体验修改数据：vm.msg = '123'，为何可以这样进行修改。
      // 解释：
      // 1. {data:'数据配置选项'} 传入个Vue钩子函数去使用的
      // 2. vue在实例化的时候 会将data属性设置在 $data 的实例属性中
      // 3. 其实可以使用 vm.$data.msg = 123  进行数据的修改，但是略微麻烦
      // 4. vue把$data当中的数据，代理在 vm 实例下，所以直接通过实例也可以修改访问数据
      // 注意：
      // 我们把修改数据后，视图容器使用数据的位置，也发生更新，称为：数据驱动视图
      // 能够驱动视图更新的数据，也可以认为是响应式数据，响应式数据必须 显性的声明。
      // 如果使用响应式数据，必须在data当中提前声明。
      data: {
        msg: 'hi vuejs',
        // 现在user中没有任何属性
        user: {
          // 提前声明
          name: ''
        }
      }
    })
  </script>
</body>
</html>